Intelligent analytics interface

ABSTRACT

This disclosure covers methods, non-transitory computer readable media, and systems that use an intelligent analytics interface to process natural-language and other inputs to configure an analytics task for the system. The disclosed methods, non-transitory computer readable media, and systems provide the intelligent analytics interface to facilitate an exchange between the systems and a user to determine values for the analytics task. The methods, non-transitory computer readable media, and systems then use these values to execute an analytics task.

BACKGROUND

Analysts, firms, and other organizations increasingly use analyticalprocessing systems to perform complex analyses on data related toproducts, services, trading, and other items. With the increasedreliance on complex data analytics, analytical processing systems haveadded sophisticated methods of segmenting and visualizing datasets. Forexample, some existing analytical processing systems apply sophisticatedalgorithms to analyze large datasets in less than seconds. In somecases, for instance, the algorithms enable the analytical processingsystems to identify search terms that web visitors entered beforevisiting and purchasing a product from a particular website. As anotherexample, in other cases, existing analytical processing systems identifydifferent channels from either mobile software applications or websitesfrom which a visitor navigated to a target website. Having performedthese or other analytics operations, some existing analytical processingsystems provide visualizations of the segmented datasets in various areacharts, bar charts, timelines, or other graphical representations.

To enable the growing number and complexity of analytics operations,some analytical processing systems have modified user interfaces toinclude more options. For example, many existing analytics userinterfaces include an increasing number of menu options, icons, searchfields, or drag-and-drop tools that capture user inputs for analyticsoperations. Despite the growing flexibility of some options, severalexisting analytics user interfaces still require an analyst to usespecific computational syntax to perform an analytics operation. Forinstance, in some cases, an analytics user interface can capture thenecessary inputs for an analytics operation only when the analyst usescorresponding Structured Query Language (“SQL”) syntax.

Many analytics user interfaces have become too complex for some analyststo properly use or to rely on to efficiently automate analyticsoperations. The increased number and complexity ofanalytics-user-interface options pose an obstacle for beginning (andeven experienced) analysts to apply and (in some cases) require a rigidinput syntax with which inputs must comply. This decreased usabilityprevents firms and organizations from scaling up analytics operationsand from making analytics systems accessible to a broader workforce. Inaddition to this decreased usability, some of the existing analyticsuser interfaces hinder firms and other organizations from automatingcomplex analytics operations quickly or, for some operations, fromautomating the operations all together. The complex and various inputsrequired for some analytics operations prevent computerized analyticssystems from automating such operations and slow down the analyticsprocessing.

SUMMARY

This disclosure describes one or more embodiments of methods,non-transitory computer readable media, and systems that solve theforegoing problems in addition to providing other benefits. While thissummary refers to systems for simplicity, the summary also applies tocertain disclosed methods and non-transitory computer readable media. Tosolve the foregoing and other problems, the disclosed systems use anintelligent analytics interface to process natural-language and otherinputs to configure an analytics task for the system. The disclosedsystems provide the intelligent analytics interface to facilitate anexchange between the systems and a user to determine values for theanalytics task. The systems then use these values to execute ananalytics task.

In some embodiments, for instance, the systems receive anatural-language input that a user provides via an analytics interface.The systems then determine that an intent of the natural-language inputcorresponds to an analytics task for the analytics system to execute.The systems subsequently identify multiple slots for the systems to usewhen executing the analytics task. To obtain certain valuescorresponding to slots, the systems customize a response correspondingto a slot from the multiple slots. When the systems receive anadditional input in response to the customized response, the systemsdetermine a slot value corresponding to the slot. In response todetermining slot values for each of the multiple slots, the systemsexecute the analytics task using an analytical dataset and the slotvalues for each of the multiple slots.

The following description sets forth additional features and advantagesof one or more embodiments of the disclosed systems, methods, andnon-transitory computer readable media. In some cases, such features andadvantages will be obvious to a skilled artisan from the description ormay be learned by the practice of the disclosed embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description refers to the drawings briefly described below.

FIG. 1 illustrates a block diagram of an environment for implementing ananalytics system in accordance with one or more embodiments.

FIGS. 2A-2B illustrate sequence-flow diagrams of an analytics systemreceiving natural-language inputs from a user through an analyticsinterface and executing an analytics task based on the natural-languageinputs in accordance with one or more embodiments.

FIGS. 3A-3B illustrate an analytics interface that receivesnatural-language inputs (or other inputs) and provides responses tofacilitate executing an analytics task in accordance with one or moreembodiments.

FIG. 4 illustrates a schematic diagram of the analytics system of FIG. 1in accordance with one or more embodiments.

FIG. 5 illustrates a sequence-flow diagram of the analytics system ofFIG. 1 in accordance with one or more embodiments.

FIG. 6 illustrates a flowchart of a series of acts in a method ofexecuting an analytics task based on natural-language inputs inaccordance with one or more embodiments.

FIG. 7 illustrates a block diagram of an exemplary computing device inaccordance with one or more embodiments.

DETAILED DESCRIPTION

This disclosure describes an analytics system that uses an intelligentanalytics interface to process natural-language and other inputs toconfigure an analytics task for the analytics system. The disclosedanalytics system provides the intelligent analytics interface tofacilitate an exchange between the analytics system and a user todetermine values for the analytics task. The disclosed analytics systemthen uses these values to execute the analytics task.

In some embodiments, for instance, the analytics system receives anatural-language input that a user provides via an analytics interface.The analytics system then determines that an intent of thenatural-language input corresponds to an analytics task for theanalytics system to execute. The analytics system subsequentlyidentifies multiple slots to use when executing the analytics task.After identifying the multiple slots, the analytics system maps a firstslot value from the natural-language input to a first slot from themultiple slots. But the analytics system also identifies that thenatural-language input does not include a slot value corresponding to asecond slot from the multiple slots.

To obtain a slot value corresponding to the second slot, the analyticssystem customizes a response corresponding to the second slot from themultiple slots. When the analytics system receives an additional inputin response to the customized response, the system determines a secondslot value corresponding to the second slot based on the additionalinput. This and other slot values enable the analytics system to performthe analytics task. In response to determining slot values for each ofthe multiple slots, the analytics system executes the analytics taskusing an analytical dataset and the slot values for each of the multipleslots.

As suggested above, the analytics system provides an analytics interfaceto facilitate the natural-language and other inputs. In someembodiments, the analytics interface includes two different types ofinterfaces—an analytics visualization interface and a chatbot interface.Among other things, the analytics visualization interface includesmenus, icons, and other options that (when selected) trigger theanalytics system to execute tasks and generate visualizations ofcorresponding datasets. The chatbot interface facilitates an exchange ofa user's natural-language and other inputs and the analytics system'sresponses. The analytics system uses pre-labeled data to train a virtualanalytics assistant to identify the intent of natural-language inputsand respond to inputs within the chatbot interface.

As a result of this training, in certain embodiments, the disclosedanalytics system determines the intent of various natural-languageinputs using natural language processing. When the analytics systemdetermines that an input's intent corresponds to an analytics task, theanalytics system optionally identifies multiple slots that correspond tothe analytics task. These slots represent placeholders for values thatthe analytics system uses to execute the analytics task. By processingmultiple iterations of training data, the analytics system learns toidentify slot values from natural-language inputs, with the slot valuescorresponding to the slots for an analytics task.

In some embodiments, the analytics system identifies that the receivednatural-language or other inputs do not include a slot valuecorresponding to a slot. The analytics system learns to identify suchmissing slot values based on iterations of pre-labeled training data. Insome cases, after identifying that a natural-language input lacks a slotvalue, the analytics system identifies a suggested slot valuecorresponding to the slot and customizes a response recommending thesuggested slot value. By contrast, in some cases, the analytics systemcustomizes a response that requests a slot value from the usercorresponding to the slot. Through exchanges of such inputs andresponses, the analytics system determines a slot value for each slotrequired to execute the analytics task.

In addition to executing analytics tasks, the analytics system furtheridentifies suggested analytics tasks for the system to execute for auser. Such suggested analytics tasks may provide additional insights orreveal information related to a project that interests the user. In someembodiments, the analytics system identifies and recommends a suggestedanalytics task to the user when the user logs in to the analytics systemor reactivates the analytics interface. Additionally, or alternatively,the analytics system identifies and recommends a suggested analyticstask after executing an analytics task the user requested throughnatural-language inputs. In either case, the analytics system mayidentify a suggested analytics task based on the user's previouslyexecuted tasks, other users' previously executed tasks, or the contextand subject matter of such tasks.

Beyond suggesting analytics tasks, the analytics system optionallyidentifies and provides tutorials (or other guidance) to a user. Forexample, in some embodiments, the analytics system identifies anarticle, video, or other medium explaining an analytics task in atutorial (e.g., by explaining the slot values for an analytics task). Asanother example, in some embodiments, the analytics system identifiesterms, functions, or options within the analytics visualizationinterface or chatbot interface to familiarize the user with variousanalytics tasks and slot values. As suggested above, the analyticssystem optionally provides or references such tutorials or guidanceusing the chatbot interface.

By understanding natural-language inputs and determining correspondinganalytics tasks, the disclosed analytics system avoids the complexityand rigidity of some existing analytics user interfaces. Rather thanmere menus, options, and various controls, the disclosed analyticssystem uses a unique combination of intent and slot-value identificationto run analytics tasks requested by a user. The disclosed analyticssystem thus provides an easy-to-use analytics interface and processesnatural-language inputs to perform complex analytics tasks.

Unlike some existing analytics systems' interfaces, the disclosedanalytics interface enables firms and other organizations to increaseboth the usability and speed with which analytics tasks are executed.Indeed, the disclosed analytics system reduces a user's inputs into ananalytics interface to expedite execution of an analytics task. In otherwords, the disclosed analytics system uses intent and slot-valueidentification to simplify a complex process of configuring an analyticstask.

In addition to increased usability and speed, the disclosed analyticssystem also automates tasks that prior analytics systems could not (orhave not) automated. Rather than requiring an analyst to use the syntaxof a specific query language or use a specific combination of options orcontrols, the disclosed analytics system automates the process ofconfiguring a complex analytics task with natural-language and otherinputs. The analytic system's chatbot interface andnatural-language-processing capabilities obviate the tedious inputsrequired by more complex interfaces that currently hinder existinganalytics systems.

As used in this disclosure, the term “natural-language input” refers toan audio or textual input in a human language. For example, anatural-language input includes a spoken command or request in Englishfor an analytics system to perform a particular analytics task (e.g.,“Show me the latest results for campaign 20”). As another example, anatural-language input includes a textual command or request in Frenchto perform a particular analytics task (e.g., “Combien de commandesavons-nous reçues en juin pour les widget?” meaning, “How many ordersdid we receive in June for widgets?”).

The term “analytics task” refers to an operation that an analyticssystem performs to filter, label, query, segment, sort, surface, orotherwise analyze a dataset. For example, in some embodiments, ananalytics engine may execute an analytics task by segmenting ananalytical dataset to identify the websites that a visitor most commonlyvisited before navigating to a target website and purchasing aparticular product. As another example, in some embodiments, ananalytics engine may execute an analytics task by querying an analyticsdatabase to identify a target population of customers, visitors, orusers according to a particular demographic. As yet another example ofan analytics task, the analytics engine 108 may set up an alert thatnotifies a client device when an order total reaches a particularnumber.

Relatedly, the term “analytical dataset” refers to a dataset used by ananalytics system to execute an analytics task. For example, in someembodiments, an analytical dataset comprises profile information forusers of an analytics system. As another example, in someimplementations, an analytical dataset comprises sales information for aparticular application, organization, product, service, software, orwebsite. As yet another example, an analytical dataset comprisesconversions, purchases, visits, or views tracked for a website orwebpage.

The term “slot” refers to a placeholder for a value used in an analyticstask. For example, slots may include, but are not limited to,placeholders for an advertising campaign identifier, a productidentifier, a software application, a time period, a website, a webpage,or some other subject matter. In some embodiments, an analytics systemuses slot tags to represent different slots. For instance, the slot tagsof “campaign_id,” “product_id,” “application_name,” “time_period,”“website_url,” or “webpage_url” respectively correspond to theplaceholders (or slots) described above.

By contrast, the term “slot value” refers to a value or informationalentity used to execute an analytics task. For example, slot values mayinclude, but are not limited to, specific informational entities for anadvertising campaign identifier, a product identifier, a softwareapplication, a time period, a website, a webpage, or some other subjectmatter. Each slot value is a specific value, such as, “campaign 20,”“product SKU 145,” “Adobe Illustrator Draw App,” “last month,”“www.example.com,” or “www.example.com/creativecloud,” which correspondto the example slot tags described above.

Turning now to the figures, FIG. 1 provides an overview of anenvironment 100 in which an analytics system 102 operates in accordancewith one or more embodiments. As illustrated in FIG. 1, the environment100 includes the analytics system 102, a network 112, and a clientdevice 114 with an associated user 118. As shown, the analytics system102 and the client device 114 communicate with each other through thenetwork 112. Although FIG. 1 illustrates one particular arrangement ofthe analytics system 102, the network 112, and the client device 114,various additional arrangements are possible. For example, the clientdevice 114 may directly communicate with the analytics system 102 andthereby bypass the network 112.

As shown in FIG. 1, the client device 114 includes an analyticsapplication 116 provided (in whole or in part) by the analytics system102. In some embodiments, the analytics application 116 comprises a webbrowser, applet, or other software application (e.g., nativeapplication) available to the client device 114. Additionally, in someinstances, the analytics system 102 provides data packets includinginstructions that, when executed by the client device 114, create orotherwise integrate the analytics application 116 within an applicationor webpage.

In some embodiments, the analytics system 102 communicates with theclient device 114 through the analytics application 116. Additionally,the analytics application 116 optionally includes computer-executableinstructions that, when executed by the client device 114, cause theclient device 114 to perform certain functions. For instance, theanalytics application 114 can cause the client device 114 to communicatewith the analytics system 102 to access data for a particular project.

In some embodiments, when the user 118 accesses or otherwise interactswith the analytics application 116, the client device 114 presentsanalytical datasets provided by the analytics system 102. For example,in certain embodiments, the client device 114 receives anatural-language input from the user 114 through an interface of theanalytics application 116. In some cases, the natural-language inputrequests that the analytics system 102 perform an analytics task.

In one or more embodiments, the client device 114 transmits thenatural-language inputs (and other inputs) through the network 112 tothe analytics system 102. For instance, the client device 114 maytransmit data packets to the analytics system 102 with data encoding forthe natural-language inputs. The client device 114 may include, but isnot limited to, a mobile device (e.g., smartphone, tablet), laptop,desktop, or any other type of computing device, such as those describedbelow with reference to FIG. 7. Similarly, the network 112 may compriseany of the networks described below with reference to FIG. 7. While FIG.1 illustrates one client device 114, one analytics application 116, andone associated user 118, in alternative embodiments, the environment 100includes more client devices, analytics applications, and users. Forexample, in some embodiments, the environment 100 includes hundreds,thousands, millions, or billions of client devices, analyticsapplications, and associated users.

As further shown in FIG. 1, the analytics system 102 receivesnatural-language inputs (and other inputs) from the client device 114through the network 112. The analytics system 102 includes severalcomponents that (by themselves or together) process natural-langue orother inputs. The analytics system 102 includes a virtual analyticsassistant 104 that in turn includes a natural language processor 106. Asdescribed further below, the virtual analytics assistant 104 uses thenatural language processor 106 to apply natural language processing tonatural-language inputs. For example, in some embodiments, the virtualanalytics assistant 104 determines an intent of a natural-language inputand assigns a corresponding intent tag to represent the determinedintent. As suggested above, the virtual analytics assistant 104 maydetermine that a natural-language input's intent is to request ananalytics task.

In addition to the virtual analytics assistant 104, the analytics system102 further includes an analytics engine 108. The analytics engine 108executes various analytics tasks. For example, in some embodiments, theanalytics engine 108 may execute an analytics task by segmenting ananalytical dataset to identify the websites that a visitor most commonlyvisited before navigating to a target website and purchasing aparticular product. As another example, in some embodiments, theanalytics engine 108 may execute an analytics task by querying ananalytics database to identify a target population of customers,visitors, or users according to a particular demographic. As yet anotherexample of an analytics task, the analytics engine 108 may set up analert that notifies the client device 114 when an order total reaches aparticular number.

Before executing an analytics task, however, the analytics system 102identifies slots for the analytics task and maps slot values from anatural-language input to the identified slots. As noted above, the term“slot” refers to a placeholder for a value used in an analytics task.For example, slots may include, but are not limited to, placeholders foran advertising campaign identifier, a product identifier, a softwareapplication, a time period, a website, a webpage, or some other subjectmatter. In some embodiments, the analytics system 102 uses slot tags torepresent different slots. For instance, the slot tags of “campaign_id,”“product_id,” “application_name,” “time_period,” “website_url,” or“webpage_url” respectively correspond to the placeholders (or slots)described above.

As also noted above, the term “slot value” refers to a value orinformational entity used to execute an analytics task. For example,slot values may include, but are not limited to, specific informationalentities for an advertising campaign identifier, a product identifier, asoftware application, a time period, a website, a webpage, or some othersubject matter. Each slot value is a specific value, such as, “campaign20,” “product SKU 145,” “Adobe Illustrator Draw App,” “last month,”“www.example.com,” or “www.example.com/creativecloud,” which correspondto the example slot tags described above. The analytics system 102 usesthe slot values as inputs to execute an analytics task with acorresponding function. In other words, a slot value can be a value theanalytics system 102 uses as part of a function.

As further shown in FIG. 1, the analytics system 102 includes ananalytics database 110. In one or more embodiments, the analytics system102 accesses and queries data for an analytics task from the analyticsdatabase 110. Additionally, or alternatively, the analytics system 102sends data to the analytics database 110 for storage. The analyticsdatabase 110 optionally stores data organized by application, product,project, user, website, or any other dimension. For example, theanalytics database 110 may store data related to an advertising campaignby marking the data with an appropriate metadata tag for the campaign.

As suggested by FIG. 1, in some embodiments, one or more serversseparately include the virtual analytics assistant 104, the analyticsengine 108, and the analytics database 110. By contrast, in otherembodiments, a single server may include each of the virtual analyticsassistant 104, the analytics engine 108, and the analytics database 110,or each of the virtual analytics assistant 104, the analytics engine108, and the analytics database 110 may be implemented across multipleservers. Regardless, in some embodiments, the analytics system 102comprises computer-executable instructions that cause the server(s) toperform the various functions, features, processes, and methodsdescribed herein. The servers comprising the virtual analytics assistant104, the analytics engine 108, and the analytics database 110 may becontent servers. Alternatively, the servers may also comprise acommunication server or a web-hosting server. Additional detailsregarding the servers that comprise the virtual analytics assistant 104,the analytics engine 108, and the analytics database 110 will bediscussed below with respect to FIG. 7.

In addition or in the alternative to the arrangement shown in FIG. 1,some of the components of the analytics system 102 may be hosted by orreside on third-party servers. For example, third-party server(s) mayinclude or host the natural language processor 106 (or a portion of thenatural language processor 106). Additionally, third-party server(s) mayinclude or host the analytics database 110 (or a portion of theanalytics database 110). In some such embodiments, the virtual analyticsassistant 104 and the analytics engine 108 may communicate with thenatural language processor 106 or the analytics database 110 over thenetwork 112.

In addition to executing analytics tasks, in some embodiments, theanalytics system 102 tracks user data. In one or more embodiments, theanalytics system 102 tracks various user data related to thecommunications between client devices and third-party network server(s)(not shown), including data associated with analytics applications. Forexample, the analytics system 102 tracks user data that representswebpages visited by users or analytics tasks requested or referenced byusers. Additionally, or alternatively, any one of the analyticsapplications tracks user data that represent the same actions performedby one of the associated users.

The analytics system 102 tracks user data in various ways. In one ormore embodiments, third-party network server(s) tracks the user data andthen reports the tracked user data to the analytics system 102.Alternatively, the analytics system 102 receives tracked user datadirectly from the client device 114 and other client devices. Inparticular, the analytics system 102 may receive information throughdata stored on a client device (e.g., data associated with an analyticsapplication, software application metadata, a browser cookie, cachedmemory), embedded computer code (e.g., tracking pixels or other code fortracking websites visited), a user profile, or engage in any other typeof tracking technique. Accordingly, the analytics system 102 can receivetracked user data from the third-party network server(s), the network112, and/or various client devices.

Turning now to FIGS. 2A and 2B, these figures provide an overview ofembodiments of the analytics system 102 that receive one or morenatural-language inputs from a user through an analytics interface andexecute an analytics task based on the natural-language inputs.Specifically, FIGS. 2A and 2B illustrate a sequence of acts 202-252 thatthe analytics system 102 or the client device 114 perform. In someembodiments, for example, the analytics system 102 or the analyticsapplication 116 comprise computer-executable instructions thatrespectively cause server device(s) (e.g., of the analytics system 102)or the client device 114 to perform one or more of the acts 202-252.Rather than repeatedly describe the instructions within the analyticssystem 102 or the analytics application 116 as respectively causing theserver device(s) or the client device 114 to perform certain acts, thisdisclosure primarily describes the analytics system 102 or the clientdevice 114 as performing the acts 202-252 as a shorthand for thoserelationships.

Turning now to those acts, as shown in FIG. 2A, the client device 114performs the act 202 of presenting an analytics user interface. Forexample, in some embodiments, the client device 114 opens a softwareapplication corresponding to the analytics system 102. Alternatively,the client device 114 receives a Uniform Resource Locator (“URL”) withina web browser that corresponds to the analytics system 102. Upon openingthe software application or receiving the URL, the analytics userinterface optionally includes credential fields requiring credentialsfor the user 118 to log in to a user account for the analytics system102 (e.g., a username and password). The user 118 may have his or herseparate user account or a share user account (e.g., for an organizationor team). In response to opening the software application, receiving theURL, or logging in to a user account, the client device 114 optionallypresents the analytics user interface.

As noted above, in some embodiments, the analytics user interfaceincludes both an analytics visualization interface and a chatbotinterface. In some circumstances, the analytics visualization interfaceincludes various options that (when selected) trigger the analyticssystem to execute analytics tasks and generate visualizations ofcorresponding datasets. For example, in certain embodiments, theanalytics visualization interface includes menu options, icons, searchfields, drag-and-drop tools and other options that (when selected)capture inputs for analytics tasks to be performed by the analyticssystem 102.

By contrast, in some embodiments, the chatbot interface facilitates anexchange of a user's inputs and the analytics system 102's responses.User inputs include, but are not limited to, natural-language inputs,selections from various options presented within the chatbot interface,or specialized language inputs for the chatbot interface (e.g., cuesymbols having specific meanings or references, such as “@” or “#”). Asexplained below, FIGS. 3A and 3B provide an example of the analyticsvisualization interface and the chatbot interface, as well as userinputs and responses from the analytics system 102.

After the client device 114 opens a software application or navigates toa URL corresponding to the analytics system 102, the analytics system102 optionally performs the act 204 of identifying a suggested analyticstask and the act 206 of customizing an advisory response. As indicatedby the arrow corresponding to the act 206, the analytics system 102 alsosends the customized advisory response to the client device 114 forpresentation within the analytics interface. The customized advisoryresponse references the identified analytics task as a suggestedanalytics task for the user 118 to consider. In some such embodiments,the analytics system 102 identifies a suggested analytics task andcustomizes an advisory response before receiving a natural-language orother input from the client device 114. In other words, during a givensession, the analytics system 102 may identify and suggest an analyticstask to the user 118 without (or before) receiving natural-languageinputs or other inputs in a chatbot interface from the user 118.

When performing the act 204, the analytics system 102 may use a varietyof methods to identify one or more analytics tasks as suggestions forthe user 118. For example, the analytics system 102 optionallyidentifies analytics tasks by determining a frequency an analytics taskhas been requested by users for a given time period. In some cases, forinstance, the analytics system determines an analytics task performed bymost users of the analytics system 102 or by most of the similar usersto the user 118 (e.g., users in a same industry or same job function).Additionally, or alternatively, the analytics system 102 identifiesanalytics tasks by determining a recently performed analytics taskrequested by users for a given time period, such as an analytics taskrequested by most users of the analytics system 102 or by most of thesimilar users to the user 118.

In addition or in the alternative to the identification methods justdescribed, the analytics system 102 optionally identifies analyticstasks by determining a similar task requested by users for a given timeperiod. In some such cases, for instance, the analytics system 102determines an analytics task with different dimensions than theanalytics task most recently requested by the user (e.g., the samesegmenting task using orders instead of cart additions as a dimension)or an analytics task most recently requested by the user 118 but usingan updated dataset. Additionally, the analytics system 102 may determinean analytics task most commonly requested by users relating to thesubject matter of the most recently requested analytics task by the user118 (e.g., commonly requested analytics tasks for advertising campaigns,sales growth, orders, or payroll).

As another option, the analytics system 102 optionally identifiesanalytics tasks by determining an ordered sequence of analytics tasksrequested by users for a given time period, such as by determining ananalytics task most commonly requested by users after another analyticstask has been performed. Relatedly, in certain embodiments, theanalytics system 102 identifies analytics tasks related to the user118's projects or a recently executed analytics task requested by theuser 118. For example, in some embodiments, the analytics system 102identifies analytics tasks for detecting anomalies related to a projectfor a particular advertising campaign, application, organization,product, website, or some other subject.

In addition to the identification methods described above, the analyticssystem 102 may likewise use any suitable method to identify an analyticstask to suggest to the user 118. Regardless of whether the analyticssystem 102 identifies the suggested analytics task based on frequency,recent performance, similarity, ordered sequencing, or relatedness—asexplained above—or some other method, the analytics system 102optionally identifies multiple suggested analytics tasks from which theuser 118 may select (e.g., three most commonly requested analytics tasksafter performing a given analytics task). The analytics system 102 mayalso make each such determination for any particular time period (e.g.,frequency or recent performance within the last few days, last week,last month). Accordingly, the analytics system 102 may identify adifferent analytics task to suggest to the user 118 depending on thetime period.

After identifying the analytics task, the analytics system 102customizes an advisory response referencing the identified analyticstask as a suggested analytics task. For example, the analytics system102 may combine a template message for suggesting an analytics task andone or more of the identified analytics tasks to customize an advisoryresponse for the user 118.

As suggested above, in some embodiments, the analytics system 102 inputspre-labeled data into the virtual analytics assistant 104 to train thevirtual analytics assistant 104 to generate natural-language messagessuggesting an analytics task. The analytics system 102 uses, forexample, pre-labeled data of natural-language messages created by humanssuggesting an analytics task to train the virtual analytics assistant104 to generate an advisory response in a natural-language message.Additionally, or alternatively, the analytics system 102 causes theclient device 114 to present selectable options (or short-formreferences) representing the identified analytics tasks within thechatbot interface. As explained below, FIG. 3B illustrates a customizedadvisory response within a chatbot interface.

As an example of a suggested analytics task, the analytics system 102may identify analytics tasks that determine key performance indicators(“KPIs”) for a particular time period and for a particular advertisingcampaign, product, organization, order type, or other subject matter orslot value. In some cases, for instance, the analytics system 102identifies an analytics task that determines a sales growth (expressedin percentage of growth in revenue) for an organization for a year todate. In some circumstances, for example, the analytics system 102identifies an analytics task that determines a number of unique visitorsto a particular website over the last week. As an example of acustomized advisory response, the analytics system 102 may generate andsend an advisory response in natural language suggesting that theanalytics system 102 execute a particular analytics task (e.g., “Wouldyou like to see sales growth for the year to date?” or “Would like tosee the number of unique visitors for www.example.com over the lastweek?”).

Regardless of when or whether the analytics system 102 suggests ananalytics task, the analytics system 102 both receives and processesnatural-language inputs. As shown in FIG. 2A, the client device 114performs the act 208 of receiving a natural-language input. As indicatedby the arrow associated with the act 208, the client device 114 alsosends (and the analytics system 102 receives) the natural-languageinput. For example, the client device 114 optionally sends (and theanalytics system 102 receives) data packets comprising data encoding fora natural-language-audio input (e.g., as a digital audio file) or anatural-language-textual input (e.g., as text).

As just noted, in some embodiments, the client device 114 receives anatural-language-audio input. For example, in some instances, the clientdevice 114 receives a spoken request indicating an analytics task orsome other input. The client device 114 optionally includes a microphoneor some other audio-capturing device that captures or records thenatural-language-audio input. The client device 114 optionally createsor stores (at least temporarily) a digital audio file of thenatural-language-audio input.

In addition to capturing a natural-language-audio input, either one orboth the client device 114 and the analytics system 102 uses aspeech-to-text application to transcribe the natural-language-audioinput into text. Upon transcribing or receiving a transcription of thenatural-language-audio input, the client device 114 presents thetranscription within an analytics interface (e.g., within the chatbotinterface). For example, in some embodiments, the client device 114 orthe analytics system 102 uses a publicly available speech-to-textapplication from Adobe Premiere Pro to analyze thenatural-language-audio input and transcribe it into text. But the clientdevice 114 or the analytics system 102 may also use other publiclyavailable speech-to-text applications suitable for transcription.

Additionally, or alternatively, in some embodiments, the client device114 or the analytics system 102 applies a Hidden Markov Model (“HMM”)for speech recognition (sometimes combined with a feedforward artificialneural network) to transcribe the natural-language-audio input intotext. Similarly, in some embodiments, the client device 114 or theanalytics system 102 applies the deep learning method of long short-termmemory (“LSTM”) that uses a recurrent neural network, as described bySepp Hochreiter and Jurgen Schmidhuber, “Long Short-Term Memory, NeuralComputation, Volume 9, Issue 8, pp. 1735-1780 (1997), which is herebyincorporated by reference in its entirety. But the client device 114 orthe analytics system 102 may use any speech recognition algorithm totranscribe text from speech, including those described by Dong Yu and LiDeng, “Automatic Speech Recognition” (Springer 2014), which is herebyincorporated by reference in its entirety.

In addition to receiving a natural-language-audio input, in someembodiments, the client device 114 receives a natural-language-textualinput. For example, in some cases, the client device 114 captures anatural-language-textual input from a physical or virtual keyboard ofthe client device 114. Alternatively, the client device 114 captures anatural-language-textual input by detecting touch gestures on a touchscreen that the client device 114 transcribes into text. Regardless ofwhether the client device 114 captures the natural-language-textualinput with a keyboard or touchscreen, the client device 114 may capturethe natural-language-textual input letter-by-letter,character-by-character, or stroke-by-stroke.

As further shown in FIG. 2A, after receiving the natural-language input,the analytics system 102 performs the act 210 of determining an intentof the natural-language input. For example, in some embodiments, theanalytics system 102 determines that an intent of the natural-languageinput corresponds to an analytics tasks for the analytics system 102 toexecute. In some such embodiments, the analytics system 102 appliesnatural language processing to assign (to the natural-language input) anintent tag or intent label representing the intent of thenatural-language input (e.g., an intent tag representing a request foran analytics task).

To determine an intent of a natural-language input, the analytics system102 optionally uses a natural language processing (“NLP”) applicationlocally stored within the analytics system 102 (e.g., as part of thevirtual analytics assistant 104). For example, in some embodiments, theanalytics system 102 uses a publicly available NLP application, such asMicrosoft Corporation's Language Understanding Intelligent Service(“LUIS”), Facebook, Inc.'s Wit.ai, or Google Inc.'s API.ai. In some suchembodiments, the analytics system 102 stores and executes an open sourceversion of LUIS, Wit.ai, API.ai, or some other publicly available NLPapplication (or portion thereof) to determine an intent of thenatural-language input.

Instead of using a commercial NLP application, in some embodiments, theanalytics system 102 trains and applies a classifier algorithm todetermine an intent of various natural-language inputs, such as aSupport Vector Machine (“SVM”) classifier or a maximum entropyclassifier. For example, the analytics system 102 optionally applies anSVM classifier to natural-language inputs to determine an intent of eachnatural-language input. In some such embodiments, the analytics system102 applies NLP intent analysis to each input, such as by using NLPopen-source software available from the Stanford Natural LanguageProcessing Group from Stanford University, California. In certainembodiments, the analytics system 102 uses an SVM classifier describedby C. Cortes and V. Vapnik, “Support-Vector Networks,” Machine Learning,Vol. 20, Issue 3, pp. 273-297 (1995), which is hereby incorporated byreference in its entirety. By contrast, in some embodiments, theanalytics system 102 applies a maximum entropy classifier described inA. McCallum, D. Freitag, and F. C. Pereira, “Maximum Entropy MarkovModels for Information Extraction and Segmentation,” 17th InternationalConf. on Machine Learning (2000), which is hereby incorporated byreference in its entirety.

Instead of using an SVM classifier, in certain embodiments, theanalytics system 102 trains and applies a recurrent neural network(“RNN”) model to determine an intent of various natural-language inputs.For example, the analytics system 102 optionally applies an RNN model tonatural-language inputs to determine an intent of each natural-languageinput. RNNs include feedback connections from one time stamp to a nexttime stamp. Accordingly, an RNN model can incorporate previous contextwhen modeling temporal dependencies in data. In certain embodiments, theanalytics system 102 uses one of the RNN models for natural-languageprocessing described by Yoav Goldberg, Neural Network Methods forNatural Language Processing: Synthesis Lectures on Human LanguageTechnologies, Graeme Hirst ed., Morgan & Claypool Publishers (2017),which is hereby incorporated by reference in its entirety.

In the alternative to using a locally stored NLP application, theanalytics system 102 uses a NLP application accessed from a third party.For example, the analytics system 102 may send an application programinterface (“API”) call to a third-party server. In such embodiments, theanalytics system 102 sends an API call using a particular protocolrequesting that the NLP application determine the intent of anatural-language input. For example, the analytics system 102 optionallyuses an API protocol for a third-party server running LUIS, Wit.ai, orAPI.ai to determine the intent of a natural-language input. Afterapplying the NLP application, the third-party server sends an indicationof the intent for the natural-language input to the analytics system 102(e.g., as data packets comprising data encoding a representation of theintent).

Regardless of whether the analytics system 102 uses a locally stored orremote NLP application, the analytics system 102 trains the NLPapplication to determine the intent of natural-language inputs. Forexample, in some embodiments, the analytics system 102 iterativelyinputs pre-labeled training data representing various natural-languageinputs into the NLP application. By iteratively inputting thepre-labeled training data into the NLP application, the analytics system102 verifies or corrects the intent tag that the NLP application assignsto the various natural-language inputs.

As part of this training, the pre-labeled training data optionallyincludes intent tags identifying the intent for the variousnatural-language inputs. In some embodiments, the intent tags arespecific to analytics tasks, such as a “get_campaign_effectiveness” tagor a “query_product_orders” tag. To facilitate executing analyticstasks, in certain embodiments, the analytics system 102 creates anintent tag for some or all the analytics tasks the analytics system 102executes. As explained below, the analytics system 102 optionallyassigns slots to each intent tag to facilitate executing an analyticstask.

As further shown in FIG. 2A, after determining an intent of thenatural-language input, the analytics system 102 performs the act 212 ofidentifying slots for an analytics task. To identify slots for ananalytics task, the analytics system 102 maps an identified analyticstask to slots the analytics system 102 previously assigned to the task.The analytics system 102 optionally receives one or more assigned slotsfor each analytics task from a programmer (e.g., in a programminglanguage) or from a database. The database may be, for example, areferential table or graph mapping each analytics task (e.g., asrepresented by an intent tag) to one or more slots as assigned by aprogrammer. In some such embodiments, the analytics engine 108 oranalytics database 110 stores preassigned slots for each analytics task.The analytics system 102 then uses the referential table, graph, orother database to identify slots for an analytics task.

As further shown in FIG. 2A, after identifying slots for an analyticstask, the analytics system 102 performs the act 214 of mapping slotvalues to slots. In general, the analytics system 102 identifies slotvalues from within natural-language inputs (or other user inputs) andmaps the identified slot values to slots for a particular analyticstask. In some such embodiments, the analytics system 102 assigns a slottag to each term within a natural-language input. For example, theanalytics system 102 may assign a term a slot tag of “campaign_id,”“product_id,” “application_name,” etc. Additionally, in some cases, theanalytics system 102 also assigns a term with a more general slot tag of“CC” for a coordinating conjunction or “JJ” for adjective (i.e.,part-of-speech tags). In some embodiments, the analytics system 102 doesnot use the terms corresponding to the more general slot tags to executethe analytics task, but rather to identify terms that may include slotvalues.

After assigning slot tags, the analytics system 102 identifies a termassociated with the assigned slot tags. For example, the analyticssystem 102 may identify from within a natural-language input that theterm “campaign 20” corresponds to the slot tag “campaign_id,” the term“product SKU 145” corresponds to the slot tag “product_id,” or the term“Adobe Illustrator Draw App” corresponds to the slot tag“application_name.” The analytics system 102 later uses such terms asslot values to execute the analytics task identified as part of the act210.

In some embodiments, the analytics system 102 uses the slot-fillingfunctions of a publicly available NLP application, such as LUIS, Wit.ai,or API.ai. In some such embodiments, the analytics system 102 use atraining interface for the NLP application (e.g., a web-based traininginterface) to train the NLP application to assign slots to terms withinnatural-language inputs and to identify terms corresponding to slots foran analytics task. By iteratively inputting the pre-labeled trainingdata into the NLP application, the analytics system 102 verifies orcorrects the slot tag that the NLP application assigns to each termwithin various natural-language inputs and the terms the NLP applicationassociates with a slot tag.

Additionally, or alternatively, the analytics system 102 uses agraphical model to label terms within a natural-language input with slottags. For example, in some embodiments, the analytics system 102 usesthe graphical model described in J. Lafferty, A. McCallum, F. Pereira,et al., “Conditional Random Fields: Probabilistic Models for Segmentingand Labeling Sequence Data,” Vol. 1, Proceedings of the EighteenthInternational Conference on Machine Learning, pp. 282-289 (2001), whichis hereby incorporated by reference in its entirety.

As further shown in FIG. 2A, after mapping slot values to slots, theanalytics system 102 performs the act 216 of determining missing slotvalue(s). In general, when performing the act 216, the analytics system102 determines whether a natural-language input includes one or moreslot values for an analytics task. The analytics system 102 previouslydetermined that the natural-language input's intent corresponds to ananalytics task. Having made that determination, the analytics system 102determines whether the natural-language input (or some other input fromthe user 118) includes slot values corresponding to the slots assignedto the analytics task.

To determine missing slot values, the analytics system 102 analyzes theterms in a natural-language input. For example, in some embodiments, theanalytics system 102 determines whether it has assigned each slotcorresponding to an identified analytics task to terms within one ormore natural-language inputs. For purposes of explanation, thisdisclosure uses the term “missing slot” to refer to a slot thatcorresponds to an identified analytics task and, to which the analyticssystem 102 has not mapped or assigned a value (e.g., a term from thenatural-language input). When the analytics system 102 has not mappedany term from the natural-language input to a particular slot—that is,identifies a missing slot—the analytics system 102 determines that thenatural-language input is missing a slot value.

For example, in one embodiment, the analytics system 102 may receive anatural-language input that requests, “Show me the latest results forcampaign 20.” After determining that the intent of the natural-languageinput corresponds to an intent tag of “get_campaign_effectiveness,” theanalytics system 102 identifies the slots of “campaign_id” and“time_period” for the intent tag. The analytics system 102 determinesthat the term “campaign 20” from the natural-language input represents aslot value corresponding to the slot of “campaign_id.” But the analyticssystem 102 also determines that the natural-language input does notinclude a term corresponding to the slot “time_period” for the analyticstask. Based on determining that the natural-language input lacks a termcorresponding to the slot “time_period,” the analytics system 102determines that the natural-language input is missing a slot value.

In the example above, the analytics system 102 analyzes onenatural-language input and identifies one missing slot value in thisparticular example. In some embodiments, however, the analytics system102 analyzes multiple natural-language inputs (e.g., the last two orthree natural-language inputs) and determines multiple missing slotvalues. For example, in one embodiment, the analytics system 102determines that the natural-language input does not include a termcorresponding to the slot “effectiveness_metric” for the analytics taskand, therefore, is missing an additional slot value.

As further shown in FIG. 2A, in addition to identifying missing slotvalues, the analytics system 102 optionally performs the act 218 ofidentifying a suggested slot value. To identify the suggested slotvalue, the analytics system 102 determines that a particular slotcorresponding to an identified analytics task cannot be mapped orassigned to terms within a natural-language input. In other words, theanalytics system 102 cannot find a missing slot in the natural-languageinput. The analytics system 102 subsequently identifies a slot valuecorresponding to the missing slot as a suggested slot value. In someembodiments, the analytics system 102 identifies multiple suggested slotvalues when it cannot map or assign terms from a natural-language inputor multiple natural-language inputs to the missing slot values.

The analytics system 102 uses a variety of methods to identify asuggested slot value corresponding to a missing slot. In someembodiments, for example, the analytics system 102 identifies a list ofpotential slot values corresponding to the missing slot. For example,the analytics system 102 may identify a list of potential slot valuesrelated to the user 118's projects that correspond to the missing slotvalue.

Additionally, or alternatively, in some embodiments, the analyticssystem 102 identifies slot values from previously executed analyticstasks requested by the user 118 that also correspond to the missing slotvalue. Similarly, in some embodiments, the analytics system 102identifies slot values from previously executed analytics tasksrequested by similar users to the user 118 that also correspond to themissing slot value. Such similar users may be, but are not limited to,users within a same organization, department, team, or with a same jobtitle as the user 118.

The analytics system 102 may also use previous natural-language inputsto identify a suggested slot value. For example, in some embodiments,the analytics system 102 identifies slot values that correspond to themissing slot from natural-language inputs of the user 118 within a giventime period (e.g., one year, three months). Similarly, the analyticssystem 102 optionally identifies slot values that correspond to themissing slot from natural-language inputs of users similar to the user118 within a given time period (e.g., users within a same organization).

As further shown in FIG. 2A, after determining missing slot values oridentifying suggested slot values, the analytics system 102 performs theact 220 of customizing a response. As indicated by the arrowcorresponding to the act 220, the analytics system 102 also sends thecustomized response to the client device 114 for presentation within theanalytics interface. In some embodiments, the analytics system 102customizes a response to request one or more slot values correspondingto missing slot value(s). By contrast, in some embodiments, theanalytics system 102 customizes a response to recommend one or moresuggested slot values corresponding to a missing slot value.

When customizing a response to request a slot value, the analyticssystem 102 optionally combines a template message for requesting a slotvalue and an indication of the missing slot. For example, the analyticssystem 102 optionally combines a template message of “Do you wantdetails for a particular [placeholder]?” with an indication of the slotfor “time period” to customize a response that requests, “Do you wantdetails for a particular time period?” Alternatively, the analyticssystem 102 uses a predetermined message corresponding to a particularmissing slot, such as a predetermined message asking, “What time periodare you interested in?” The foregoing template and predeterminedmessages are merely examples. In certain embodiments, the analyticssystem 102 includes a template message or predetermined messageappropriate for any missing slot.

Similarly, when customizing a response to recommend suggested slotvalues, the analytics system 102 optionally combines a template messagefor suggesting slot values and an indication of one or more suggestedslot values. For example, the analytics system 102 optionally combines atemplate message of “Are you interested in [placeholder]?” with anindication of the suggested slot values of “views,” “visits,” and“orders” to customize a response that says, “Are you interested inviews, visits, or orders?”

In some embodiments, the analytics system 102 customizes a response toinclude selectable options for each suggested slot value. For example,the analytics system 102 may create a selectable option for each of thesuggested slot values of “views,” “visits,” and “orders” that (whenselected) sends an additional input to the analytics system 102indicating the selected slot value. Again, the foregoing templatemessages are merely examples, and the analytics system 102 optionallyincludes a template message appropriate for any missing slot andrecommended slot value.

As suggested above, in some embodiments, the analytics system 102 inputspre-labeled data into the virtual analytics assistant 104 to train thevirtual analytics assistant 104 to customize responses. The analyticssystem 102 uses, for example, pre-labeled data of natural-languagemessages created by humans either requesting a slot value orrecommending a suggested slot value to train the virtual analyticsassistant 104 to customize a response in a natural-language message. Theanalytics system 102 optionally trains the virtual analytics assistant104 to customize the response for presentation within the chatbotinterface. As explained below, FIG. 3A illustrates a customized responsewithin a chatbot interface.

In addition or in the alterative to a textual response, in someembodiments, the analytics system 102 sends the customized response inthe form of an audio response. For example, in some embodiments, theanalytics system 102 uses a text-to-speech application that generates acustomized audio response that vocalizes the customized textualresponse. In some instances, the analytics application 116 includes atext-to-speech application that generates such a customized audioresponse. Alternatively, in some embodiments, the analytics system 102customizes the response and sends a digital audio file comprising theresponse to the client device 114 (e.g., as an audio stream or digitalaudio file). The client device 114 in turn plays or produces thecustomized response (e.g., as an audio stream or digital audio file).

After the client device 114 receives the customized response andpresents or plays the customized response, the client device 114performs the act 222 of receiving additional input. As indicated by thearrow associated with the act 222, the client device 114 also sends (andthe analytics system 102 receives) the additional input. For example,the client device 114 optionally sends (and the analytics system 102receives) data packets comprising data representative of anatural-language-audio input (e.g., as an audio stream or digital audiofile) or a natural-language-textual input (e.g., as text).

As suggested above, in some embodiments, the client device 114 receivesan additional input indicating a slot value. In other words, theadditional input replies to the customized response by including a slotvalue. In certain embodiments, the additional input indicates a slotvalue corresponding to a slot identified within the customized response(e.g., a missing slot). In some embodiments, however, the additionalinput indicates a slot value or some other subject matter that does notcorrespond to a slot identified within the customized response. Asdescribed below, in some such embodiments, the analytics system 102customizes an additional response to obtain an additional slot value.

As suggested by their descriptions in FIG. 2A, the act 222 is similar tothe act 208. Accordingly, the description and embodiments set forthabove for the act 208 applies to the act 222. In contrast to the act208, however, the latter act 222 involves a reply to a customizedresponse and, in some embodiments, may include a non-natural-languageinput. Indeed, in some embodiments, the client device 114 receives andsends an additional input that indicating a selection of a suggestedslot value.

For example, in certain embodiments, the customized response includesselectable options corresponding to suggested slot values. Accordingly,the client device 114 optionally detects a selection of a selectableoption for a suggested slot value and then sends an indication of theselection to the analytics system 102. In some such embodiments, theclient device 114 sends (and the analytics system 102 receives) datapackets comprising data representing or indicating a suggested slotvalue selected by the user 118.

As noted above, the additional input sometimes indicates a slot value orsome other subject matter that does not correspond to a slot identifiedwithin the customized response. In other words, at times, the additionalinput includes an incompatible slot value that does not correspond tothe slot identified within the customized response. The analytics system102 includes computer-executable instructions that attempt to resolvethis incompatibility by causing the server device(s) to seek furtherinput from the client device 114.

As shown in FIG. 2A, the analytics system 102 optionally performs theact 224 of customizing an additional response. As indicated by the arrowcorresponding to the act 224, the analytics system 102 also sends thecustomized additional response to the client device 114 for presentationwithin the analytics interface. In reply, the client device 114optionally performs the act 226 of receiving further input. As indicatedby the arrow associated with the act 226, the client device 114 alsosends (and the analytics system 102 receives) the further input.

As suggested by their descriptions in FIG. 2A, the acts 224 and 226 arerespectively similar to the acts 220 and 222. Accordingly, thedescription and embodiments set forth above for the acts 220 and 222respectively apply to the acts 224 and 226. In contrast to the acts 220and 22, however, the acts 224 and 226 involve an additional exchangewith an additional customized response seeking an additional inputcomprising an additional slot value corresponding to the missing slot.In short, the additional response seeks an additional slot valuecompatible with the missing slot.

In some embodiments, for example, the analytics system 102 customizes anadditional response that describes the missing slot and requests anadditional slot value that corresponds to the missing slot. Theadditional response may include a definition of the missing slot. Totake but one example, the additional response may include text or audioexplaining that a “campaign identifier” is a unique name, number, orcode that identifies an advertising campaign. As part of the additionalresponse's description, the additional response may include examples ofslot values that correspond to the missing slot (e.g., “campaign 20” or“march social media campaign”).

In reply to the additional response, the user 118's further inputoptionally identifies a slot value corresponding to the missing slot.But if the further input comprises another incompatible slot value, theanalytics system 102 may customize further responses (and the clientdevice 114 may receive further inputs) in an attempt to identify a slotvalue that corresponds to the missing slot.

As further shown in FIG. 2A, after receiving an additional input, theanalytics system 102 performs the act 228 of determining a slot valuebased on the additional input. In other words, the analytic system 102uses the additional input to determine a slot value corresponding to amissing slot. This determination differs depending on whether theadditional input comprises an indication of a selection from the clientdevice 114 or an additional natural-language input. In some embodiments,for example, the analytics system 102 receives an indication of aselection of a suggested slot value from the client device 114. Uponreceiving the indication, the analytics system 102 maps the suggestedslot value to the missing slot.

By contrast, in certain embodiments, the analytics system 102 analyzesan additional natural-language input to identify terms that correspondto a missing slot. Upon identifying a term that corresponds to themissing slot, the analytics system 102 determines that the termrepresents the slot value. In some such embodiments, for instance, theanalytics system 102 assigns a slot tag to each term within anadditional natural-language input. The term assigned the slot tagrepresenting the missing slot represents the slot value.

For example, the analytics system 102 may assign a term a slot tag of“campaign_id,” “product_id,” “application_name,” or some other slot tagrepresenting a missing slot. When the analytics system 102 assigns aslot tag representing the missing slot to a term of “campaign 20,” “SKU134,” or “Adobe Illustrator Draw App,” within the additionalnatural-language input, the analytics system 102 identifies that term asthe slot value corresponding to the missing slot.

Regardless of whether the analytics system 102 receives an indication ofa selection or analyzes an additional natural-language input, theanalytics system 102 determines a slot value for each slot correspondingto an analytics task before executing the analytics task. As suggestedabove, the analytics system 102 may customize multiple responses andanalyze multiple natural-language inputs (or receive multipleindications of selected suggested slot values) before determining a slotvalue for each such slot. Having determined slot values for each of theanalytics task's assigned slots, the analytics system 102 has therequisite information to execute an analytics task.

As shown in FIG. 2A, the analytics system 102 performs the act 230 ofexecuting the analytics task. In general, the analytics system 102 usesthe slot values corresponding to an analytics task to execute theanalytics task. In some embodiments, the analytics system 102 uses theslot values as inputs into a function executed on an analytical dataset,such as an analytical dataset within the analytics database 110. Inother words, the analytics system 102 executes the analytics task byexecuting the function with the slot values as inputs. Consistent withthe disclosure above, the analytics system 102 may execute an analyticstask to filter, label, query, segment, sort, surface, or otherwiseanalyze an analytical dataset. Such analyses represent merely a fewexamples of analytics tasks.

In some embodiments, the analytics system 102 sends an API call as partof executing the analytics task. For example, the analytics system 102optionally sends an API call to an internal server or a third-partyserver requesting that the server execute a function using thedetermined slot values. The server then executes the function andreturns the results to the analytics system 102.

Turning now to FIG. 2B, after executing the analytics task, theanalytics system 102 performs the act 240 of sending a representation ofthe analytical dataset to the client device 114. The analytics system102 sends a representation of the analytical dataset for display withinthe analytics interface. By sending this representation to the clientdevice 114, the analytics system 102 provides the client device 102 witha visual representation of the analytics task's results. In other words,the representation of the analytical dataset communicates or depicts theresults of the analytics task.

For example, in some embodiments, the analytics system 102 sends arepresentation of the analytical dataset depicting a segment of acertain customers, users, visitors, or some other target populationaccording to demographic categories. As another example, the analyticssystem 102 sends a representation of the analytical dataset depictingthe websites that visitors most commonly visited before navigating to atarget website and purchasing a particular product. As yet anotherexample, the analytics system 102 sends a representation of sales growthwith respect to a particular product over the last year. Each of theforegoing examples represent a result of an analytics task. As explainedbelow, FIGS. 3A and 3B include a representation of an analytical datasetwithin an analytics visualization interface.

As further shown in FIG. 2B, the analytics system 102 optionallyperforms the act 242 of identifying a suggested analytics task and theact 244 of customizing an advisory response. As indicated by the arrowcorresponding to the act 244, the analytics system 102 also sends thecustomized advisory response to the client device 114 for presentationwithin the analytics interface. This customized advisory responsereferences an analytics task as a suggested analytics task for theanalytics system 102 to perform (e.g., a follow-up analytics task thatcompliments a previously executed analytics task requested by the user118).

As suggested by their descriptions in FIGS. 2A and 2B, the acts 242 and244 are respectively similar to the acts 204 and 206. Accordingly, thedescription and embodiments set forth above for the acts 204 and 206respectively apply to the acts 242 and 244. In contrast to the acts 204and 206, however, the acts 242 and 244 involve the analytics system 102customizing an advisory response after receiving a natural-language orother input within a given session. In other words, the suggestedanalytics task for the act 242 may come closer in time to a previouslyexecuted analytics task and without the user 118 logging off or allowinga session to go inactive.

In addition to customizing an advisory response, the analytics system102 optionally performs the act 246 of identifying a tutorial and theact 248 of customizing a recommendation that references the tutorial. Asindicated by the arrow corresponding to the act 248, the analyticssystem 102 also sends the customized recommendation to the client device114 for presentation within the analytics interface. The tutorial maycomprise an article, video, or other medium explaining an analyticstask.

For example, the tutorial may include an article or video that explainsthe slots and provides examples of slot values relevant to an analyticstask. Alternatively, or additionally, the tutorial may include a videothat highlights or demonstrates results for an analytics task within theanalytics visualization interface. In some such embodiments, theanalytics system 102 provides a tutorial using a video of an analyticstask requested by a user similar to the user 118 (e.g., a user within asame organization or department).

In addition to identifying a tutorial and providing it as arecommendation, in some embodiments, the analytics system 102 identifiesterms, functions, or options within the analytics interface tofamiliarize the user 118 with various analytics tasks and slot values.For example, the analytics system 102 optionally provides definitions ofterms or a short description of an analytics task to the client device114 for presentation within the chatbot interface. Additionally, oralternatively, the analytics system 102 optionally providesrepresentations of sample datasets depicting the results of an analyticstask to give the user 118 a preview of the type of results a particularanalytics task may produce.

As further shown in FIG. 2B, in addition to customizing a recommendationreferencing a tutorial, the analytics system 102 optionally performs theact 250 of re-executing the analytics task and the act 252 ofcustomizing an update notification. As indicated by the arrowcorresponding to the act 252, the analytics system 102 also sends theupdate notification to the client device 114 for presentation within theanalytics interface. The update notification provides an update to theuser 118 concerning the results (or rather updated results) of ananalytics task. In some such embodiments, the update notificationreferences an additional dataset that the analytics system 102 used toexecute the analytics task.

The analytics system 102 re-executes the analytics task in a variety ofcircumstances. For example, in some embodiments, the analytics system104 receives an indication of a selection from the client device 114 tore-execute the analytics task after a given time period (e.g., in threedays, two weeks) or on a recurring schedule (e.g., every week, month,three months). Alternatively, in some embodiments, the analytics system102 determines that the analytical dataset that the analytics system 104initially used to execute the analytics task has changed. The analyticaldataset may change, for example, by growing significantly larger orsmaller or by reaching a statistically significant sample size (e.g.,based on an estimation of a proportion, estimation of a mean, Mead'sresource equation). In some such embodiments, the analytics system 102re-executes the analytics task and sends a customized updatenotification only when the results of the analytics task have changed toreach a statistically significant result.

As noted above, the analytics system 102 provides an analytics interfaceto facilitate an exchange of a user's inputs and the analytics system102's responses. In some embodiments, the analytics interface includesan analytics visualization interface and a chatbot interface. FIGS. 3Aand 3B generally illustrate the client device 114 presenting ananalytics interface 302 within a screen 300 comprising both an analyticsvisualization interface 304 and a chatbot interface 306. As shown, theclient device 114 presents graphical representations within theanalytics visualization interface 304. By contrast, the client device114 presents an exchange of inputs and responses between the user 118and the analytics system 102 within the chatbot interface 306.

As suggested above, the analytics application 116 comprisescomputer-executable instructions that cause the client device 114 toperform certain actions depicted in FIGS. 3A-3B. Rather than repeatedlydescribe the computer-executable instructions within the analyticsapplication 116 as causing the client device 114 to perform suchactions, this disclosure primarily describes the client device 114 assimply performing actions as a shorthand for that relationship.Additionally, while this disclosure refers to mouse clicks and keyboardinputs as examples of user interactions indicated by FIGS. 3A-3B, inadditional or alternative embodiments, the client device 114 detects anysuitable user interaction, including, but not limited to, an audio inputinto a microphone, a touch gesture on a touch screen, or a stylusinteraction with a touch screen.

Turning back now to FIG. 3A, this figure illustrates the client device114 presenting responses 316 a-316 d and natural-language inputs 318a-318 b within the chatbot interface 306. As suggested by FIG. 3A, whenthe client device 114 receives the user 118's credential information tolog in to the analytics system 102, the client device 114 sends thecredential information to the analytics system 102 and receives dataencoding the analytics interface 302. After the user 118 logs in, theanalytics system 102 customizes the response 316 a requesting input fromthe user 118. The client device 114 in turn presents the response 316 awithin the chatbot interface 306. The chatbot interface 306 furtherincludes an input field 320 within which the client device 114 presentsthe user 118's natural-language or other inputs.

The exchange of natural-language inputs and responses that followtrigger the analytics system 102 to execute an analytics task. When theclient device 114 detects the natural-language input 318 a through akeyboard, the client device 114 both sends the natural-language input318 a to the analytics system 102 and presents the natural-languageinput 318 a within the chatbot interface 306. Consistent with thedisclosure above, the analytics system 102 subsequently determines thatan intent of the natural-language input 318 a corresponds to ananalytics task for the analytics system 102 to execute.

As shown in FIG. 3A, the natural-language input 318 a corresponds to ananalytics task for determining the effectiveness of an advertisingcampaign. Accordingly, the analytics system 102 assigns a correspondingintent tag to the natural-language input 318 a (e.g.,“get_campaign_effectiveness”). The analytics system 102 then proceeds toidentify slots for the analytics task, map slot values to the identifiedslots, and determine any missing slot values based on thenatural-language input 318 a.

In the embodiment depicted in FIG. 3A, the analytics system 102determines that the natural-language input 318 a does not include a slotvalue corresponding to a slot for a time period (i.e., a missing slotfor time period). Instead of immediately customizing a response torequest a slot value (or to suggest a slot value) corresponding to themissing slot, the analytics system 102 uses a presumptive slot value toexecute the analytics task (e.g., a slot value of one week). Theanalytics system 102 then customizes the response 316 b to summarize theresults of the analytics task. Upon receiving the response 316 b fromthe analytics system 102, the client device 114 presents the response316 b within the chatbot interface 306. Accordingly, FIG. 3Ademonstrates that, in some embodiments, the analytics system 102executes an analytics task based on both a natural-language input andpresumptive slot values.

Having determined a missing slot, however, the analytics system 102 alsocustomizes the response 316 c to request a slot value corresponding tothe missing slot. As shown in FIG. 3A, the response 316 c inquireswhether the user 118 a is interested in a particular time period. Theanalytics system 102 sends the response 316 c to the client device 114,which in turn presents the response 316 c within the chatbot interface306.

After presenting the response 316 c, the client device 114 detects anadditional input from the user 118. As indicated by FIG. 3A, the clientdevice 114 detects the natural-language input 318 b through a keyboard,sends the natural-language input 318 b to the analytics system 102, andpresents the natural-language input 318 b within the chatbot interface306. Based on the natural-language input 318 b, the analytics system 102determines a slot value corresponding to the missing slot. Here, thenatural-language input 318 b indicates a different slot value for themissing slot than the presumptive slot value for the missing slot.

As further indicated by FIG. 3A, the analytics system 102 executes theanalytics task using an analytical dataset stored on the analyticsdatabase 110 and slot values for each of the identified slots for theanalytics task. As shown, the analytics system 102 uses the analyticaldataset to determine a certain number of visits to a website based on anadvertising campaign. The analytics system 102 also customizes theresponse 316 d to summarize the results of the analytics task with theupdated time period. As indicated in FIG. 3A, the analytics system 102further sends the response 316 d to the client device 114 forpresentation within the chatbot interface 306.

In addition to summarizing the results of the analytics task, theanalytics system 102 also generates and sends a representation of theanalytical dataset to the client device 114. This representation depictsthe results of the analytics task. As shown in FIG. 3A, upon receivingthe representation of the analytical dataset, the client device 114presents a graphical representation 314 a of the analytical datasetwithin the analytics visualization interface 304. As shown, thegraphical representation 314 a is a graph visually depicting the numberof visits to a website. The graphical representation 314 a is but oneexample of a representation that the analytics system 102 may generate.

As further shown in FIG. 3A, the analytics interface 302 furtherincludes some additional analytics options to configure or adjust ananalytics task. For example, the analytics interface 302 includes asearch field 308, dimension menu options 310, and metric menu options312. When the client device 114 detects an interaction between the user118 and the search field 308, dimension menu options 310, or metric menuoptions 312, the client device 114 sends an indication of thatinteraction to the analytics system 102 to configure or adjust ananalytics task. Accordingly, the natural-language inputs 318 a and 318 bare alternative inputs to the user interactions with analytics optionswithin the analytics visualization interface 304, such as the searchfield 308, dimension menu options 310, and metric menu options 312.

Turning back now to FIG. 3B, this figure illustrates the client device114 presenting responses 316 e and 316 f and input 318 c within thechatbot interface 306. As suggested by the exchange within the chatbotinterface 306, FIG. 3B depicts the analytics system 102 identifyingsuggested analytics tasks and customizing an advisory response. Thisadvisory response includes a recommendation referencing the suggestedanalytics tasks.

Similar to the exchange depicted in FIG. 3A, in FIG. 3B, the analyticssystem 102 customizes the responses 316 e and 316 f after the user 118logs in to the analytic system 102. Upon receipt of these responses, theclient device 114 presents the response 316 e as a welcome message andthe response 316 f as an advisory response recommending severalsuggested analytics tasks.

As suggested by FIG. 3B, the analytics system 102 identifies suggestedanalytics tasks for the user 118 initiation of a new session. In thisparticular embodiment, the analytics system 102 identifies suggestedanalytics tasks for detecting anomalies related to a website or softwareapplication. The analytics system 102 identifies these suggestedanalytics tasks in part because the user 118 has requested that theanalytics system 102 execute an analytics task of monitoring the websiteor software application on a recurring schedule. As suggested by theresponse 316 f, in some embodiments, the analytics system 102 executeseach of the suggested analytics tasks and then customizes a responsesuggesting that the user 118 view the results of the suggested analyticstasks or that the user 118 request that the analytics system 102 executethe suggested analytics tasks.

As shown in FIG. 3B, the response 316 f includes eight selectableoptions representing the suggested analytics tasks. When the clientdevice 114 detects a selection by the user 118 of one of the selectableoptions, the client device 114 sends an indication of the user 118'sselection to the analytics system 102. Upon receipt of the selection,the analytics system 102 executes the selected analytics task.

In addition to the selectable options, the chatbot interface 306 alsoincludes the input field 320 within which the user 118 may enternatural-language inputs or other inputs that select one of the suggestedanalytics tasks. As shown in FIG. 3B, the client device 114 detects theinput 318 c from the user 118 through a keyboard and presents the input318 c within the chatbot interface 306. The input 318 c includes a cuesymbol indicating one of the suggested analytics tasks identified by theanalytics system 102. The client device 114 further sends an indicationof the input 318 c to the analytics system 102. This indication of theinput 318 c triggers the analytics system 102 to execute one of itssuggested analytics tasks.

After receiving the indication of the input 318 c, the analytics system102 executes the analytics task indicated within the input 318 c. Inthis particular embodiment, the analytics system 102 detects anomaliesfor cart additions for a particular website or software application perthe input 318 c. Consistent with the disclosure above, the analyticssystem 102 also generates and sends a representation of an analyticaldataset to the client device 114 that depicts the results of theanalytics task. As shown in FIG. 3B, upon receiving the representationof the analytical dataset, the client device 114 presents a graphicalrepresentation 314 b of the analytical dataset within the analyticsvisualization interface 304. The graphical representation 314 a is agraph visually depicting statistics for cart-addition anomalies.

FIG. 3B depicts a particular method for identifying suggested analyticstasks based on the user 118's previously requested analytics tasks—andsuggested analytics tasks for detecting anomalies—as examples. Inadditional embodiments, the analytics system 102 uses any of the methodsdescribed above to identify a suggested analytics task or suggests anyof the analytics tasks described above. Additionally, although FIG. 3Bdepicts the analytics system 102 customizing and sending an advisoryresponse after the user 118 logs in and initiates a new session, theanalytics system 102 may customize and send an advisory response at anytime during an exchange with the user 118.

Turning now to FIG. 4, this figure illustrates a schematic diagram ofone embodiment of the analytics system 102. In some embodiments, one ormore servers support the analytics system 102. Alternatively, in someembodiments, the client device 114 comprises the analytics system 102 orportions of the analytics system 102. For example, in some suchembodiments, the client device 114 comprises the analytics application116 to perform the functions described above by the analytics system102.

As shown in FIG. 4, the analytics system 102 is communicatively coupledto the network 112. The analytics system 102 uses the network 112 toreceive inputs from the client device 114 and send responses to theclient device 114. Consistent with the disclosure above, the analyticssystem 102 includes, but is not limited to, the virtual analyticsassistant 104, the analytics engine 108, and the analysis database 110.While FIG. 4 depicts the analytics system 102 as including the analyticsdatabase 110, in some embodiments, the analytics system 102 is coupledto and communicates with the analytics database 110 over the network112. The following paragraphs describe the components of the virtualanalytics assistant 104, the analytics engine 108, and the analysisdatabase 110 in turn.

The virtual analytics assistant 104 includes various components thatprocess and respond to various natural-language inputs. As shown, thevirtual analytics assistant 104 includes a natural language processor106, a context manager 404, a dialog planner 406, a natural-languagegenerator 408, and a template-message manager 410. Consistent with thedisclosure above, the natural language processor 106 appliesnatural-language processing to understand natural-language inputs. Forexample, the natural language processor 106 applies natural-languageprocessing to determine an intent of natural-language inputs andoptionally assign intent tags. Consistent with the disclosure above, thenatural language processor 106 determines when a natural-languageinput's intent corresponds to an analytics task. In some embodiments,the natural language processor 106 assigns POS tags to terms withinnatural-language inputs as part of processing such inputs to determinetheir intent.

As noted above, the analytics system 102 optionally uses a third-partyNLP application stored either locally or on a third-party server.Accordingly, as further shown in FIG. 4, the virtual analytics assistant104 optionally includes a third-party NLP application 402. For example,the third-party NLP application 402 may comprise LUIS, Wit.ai, API.ai,or some other publicly available NLP application. In some suchembodiments, the natural language processor 106 sends an API call to thethird-party NLP application 402 requesting that the third-party NLPapplication 402 determine an intent of a natural-language input. Inresponse, the third-party NLP application 402 determines intent, assignsintent tags, and optionally assigns POS tags as part of the process ofunderstanding a natural-language input.

Regardless of whether the virtual analytics assistant 104 includes thethird-party NLP application 402, the natural language processor 106provides an indication of the intent to the dialog planner 406 (e.g.,with an intent tag). In certain embodiments, the dialog planner 406performs various slot-filling functions of the analytics system 102. Forexample, the dialog planner 406 identifies slots for an analytics task,maps slot values to the identified slots, determines any missing slotvalues, and identifies any suggested slot values. In short, the dialogplanner 406 transforms an identification of intent into slot values thatthe analytics engine 108 uses to execute an analytics task.

As further shown in FIG. 4, the dialog planner 406 sends and receivescontextual information to and from the context manager 404. The contextmanager 404 tracks and identifies the user 118's previousnatural-language inputs and previously requested analytics tasks,including the intent tags for the user 118's previous natural-languageinputs. Additionally, the context manager 404 communicates with theanalytics database 110 to retrieve contextual information used foridentifying a suggested analytics task.

Consistent with the disclosure above, the context manager 404 retrievescontextual information that the dialog planner 406 uses to identify asuggested slot value based on frequency, recent performance, similarity,ordered sequencing, or relatedness, as explained above. Such contextualinformation includes, but is not limited to, users' previously requestedanalytics tasks, ordered sequences of analytics tasks, rankings ofpreviously executed analytics tasks, slots and slot values of previouslyexecuted analytics tasks, and common slots and slot values amonganalytics tasks.

As further shown in FIG. 4, the dialog planner 406 sends various slotinformation to the natural language generator 408. For example, thedialog planner 406 optionally sends data identifying missing slots, slotvalues, or suggested slot values to the natural-language generator 408.The natural-language generator 408 in turn customizes and generatesnatural-language responses. Consistent with the disclosure above, insome embodiments, the natural-language generator 408 receivespre-labeled training data and processes the training data to learn howto customize a response. Additionally, or alternatively, thenatural-language generator 408 uses template messages, slots, and slotvalues to customize a natural-language response.

As indicated by FIG. 4, when the natural-language generator 408 usestemplate messages to customize natural-language responses, thenatural-language generator 408 exchanges template information with thetemplate-message manager 410. Consistent with the disclosure above, thetemplate-message manager 410 identifies and provides template messagesto the natural-language generator 408. For example, in some embodiments,the natural-language generator 408 provides the template-message manager410 with the relevant slots or slot values upon which a customizedresponse is based. The template-message manager 410 in turn identifies atemplate message based on the slots or slot values the natural-languagegenerator 408 provides. In some such embodiments, the template-messagemanager 410 uses a template-message database that correlates slots orslot values, on the one hand, with template messages, on the other hand.

Turning back now to the analytics engine 108, as shown in FIG. 4, theanalytics engine 108 uses information received from the dialog planner406 to execute an analytics task. In particular, the dialog planner 406sends indications of a natural-language input's intent (e.g., intenttag), an analytics task corresponding to the natural-language input,slots corresponding to the analytics task (e.g., slot tags), and/or slotvalues for the analytics task to the analytics engine 108.

The analytics engine 108 in turn uses the received indications of thenatural-language input's intent (or of the analytics task) to determinewhich task engine to use to execute the analytics task. In someembodiments, a task engine comprises computer-executable instructionsthat, when executed by at least one processor, execute a particularanalytics task or a group of analytics tasks. Upon determining whichtask engine to use, the analytics engine 108 uses the slot values forthe analytics task to execute the analytics task.

The analytics engine 108 includes various task engines, including, butnot limited to, task engines 422-430. As shown in FIG. 4, the analyticsengine 108 includes a query engine 422, an alerts engine 424, asegmentation engine 426, an anomaly engine 428, and a sales-trackingengine 430. Each of the task engines 422-430 executes a differentanalytics task or a different group of analytics tasks. The followingparagraphs generally describe each of the task engines 422-430.

The query engine 422 executes analytics tasks for querying the analyticsdatabase 110. For example, the query engine 422 may query the analyticsdatabase 110 to identify a particular tutorial, article, or slot value.Additionally, or alternatively, the query engine 422 may query theanalytics database 110 to identify a particular order, user of theanalytics system 102, or user of a third-party website or application.

The alerts engine 424 executes analytics tasks for configuring an alert.For example, the alerts engine 424 may configure an alert for the user118 that notifies the client device 114 when an analytical datasetreaches a statistically significant size. Additionally, oralternatively, the alerts engine 424 may configure an alert for the user118 that notifies the user 118 to perform another analytics task after apredetermined time period or on a recurring schedule.

The segmentation engine 426 executes analytics tasks that identifysegments of users or actions performed by segments of users. Forexample, the segmentation engine 426 identifies segments of users withinan analytical dataset that performed certain actions or satisfy aparticular demographic. Relatedly, the segmentation engine 426identifies certain actions performed or items consumed by a segment ofusers. In one such analytics task, the segmentation engine 426identifies the websites or webpages that a visitor most commonly visitedbefore navigating to a target website and purchasing a particularproduct.

The anomaly engine 428 detects anomalies within analytical datasets. Asused in this disclosure, the term “anomaly” indicates an error in asoftware application, product, website, or some other item. As indicatedby the embodiment depicted in FIG. 3B, among other things, the anomalyengine 428 may detect anomalies for cart additions, checkouts, or orderson a website.

Turning back now to FIG. 3, the sales-tracking engine 430 determinessales growth or sales decline or otherwise tracks sales for a particularorganization, product, service, or some other quantifiable entity. Forexample, the sales-tracking engine 430 may analyze an analytical datasetto determine sales growth for an organization for a year to date. Asanother example, the sales-tracking engine 430 may analyze an analyticaldataset to determine sales growth of a product for the lifetime of theproduct (e.g., ten or fifteen years).

As further shown in FIG. 4, in some embodiments, the virtual analyticsassistant 104 and the analytics engine 108 access and communicate withthe analytics database 110. As noted above, the context manager 406accesses the analytics database to retrieve contextual information usedfor identifying a suggested analytics task. Additionally, the analyticsengine 108 uses analytical datasets stored on the analytics database 110to execute analytics tasks.

To facilitate retrieving contextual information and executing analyticstasks, the analytics database 110 maintains various analytical datasets.Those analytical datasets include, but are not limited to,analytics-task data 412, application data 414, profile data 416, salesdata 418, and website data 420. In one or more embodiments, theanalytics-task data 412 comprises analytical datasets for previouslyrequested and previously executed analytics tasks for users of theanalytics system 102. By contrast, the application data 414 includesanalytical datasets for how a particular software application has beenused, including, but not limited, to login information, videos usersviewed using the software application, purchases made using the softwareapplication, and various other actions performed by the softwareapplication.

The profile data 416 includes analytical datasets of profile informationfor users of the analytics system 102. Additionally, or alternatively,the profile data 416 includes analytical datasets of profile informationfor users of a particular service, software application, or website.Regardless of the type of users to whom the profile data 416 pertains,in some embodiments, the profile information includes informationconcerning a user's organization, demographics, job title, contactinformation, and/or location.

As further shown in FIG. 4, the sales data 418 includes analyticaldatasets for sales information. In one or more embodiments, the salesdata 418 organizes sales by application, organization, product, service,website, or other metric. Additionally, or alternatively, the sales data418 includes information organized by or correlated with profileinformation. By contrast, the website data 420 includes analyticaldatasets for websites. The website data 420 includes, but is not limitedto, data tracking conversions, purchases, visits, or views according towebsite or webpage within a website.

Turning now to FIG. 5, this figure illustrates a sequence-flow diagram500 of the analytics system 102 determining a slot value for each slotrelevant to an analytics task based on user inputs. The sequence-flowdiagram 500 includes a series of acts 502-524 that the analytics system102 performs to process natural-language inputs and execute an analyticstask. The acts 502-524 correspond to acts performed by certainembodiments of the analytics system 102 described above.

As shown in FIG. 5, the analytics system 102 performs the act 502 ofreceiving a natural-language input. When performing the act 502, in someembodiments, the analytics system 102 receives audio of a spoken requestindicating an analytics task. Alternatively, the analytics system 102receives a textual request indicating an analytics task. As explainedabove with reference to the act 208 in FIG. 2A, the analytics system 102receives the natural-language input from the client device 114.

After receiving the natural-language input, the analytics system 102performs the act 504 of determining an intent of the natural-languageinput. This disclosure describes the act 504 above with reference to theact 210 of FIG. 2A. When performing the act 504, the analytics system102 determines that an intent of the natural-language input correspondsto an analytics task for the analytics system 102 to execute. Asdescribed above, the analytics system 102 optionally appliesnatural-language-processing techniques to the natural-language input toassign an intent tag representing the intent of the natural-languageinput (e.g., by using an NLP application or training a classifier).

As noted above, in certain embodiments, the analytics system 102generates a customized response based on a slot from multiple slots thatanalytics system 102 uses when executing an analytics task. As describedbelow, in certain embodiments, the analytics system 102 performs theacts 508-518 as part of generating the customized response. Indeed, insome embodiments, the analytics system 102 performs a method thatincludes a step for generating a customized response based on a slotfrom multiple slots that the analytics system 102 uses when executingthe analytics task. The acts 508-518 correspond to the step forgenerating a customized response.

After determining an intent of the natural-language input, the analyticssystem 102 performs the act 506 of identifying slots for an analyticstask. This disclosure describes the act 506 above with reference to theact 212 of FIG. 2A. When performing the act 506, the analytics system102 maps an identified analytics task to slots the analytics system 102previously assigned to the analytics task (e.g., from a programmer orpreassigned slots within the analytics engine 108 or analytics database110).

Having identifies slots for the analytics task, the analytics system 102performs the act 508 of determining whether a slot value exists for eachslot. As noted above, the analytics system 102 does not execute ananalytics task until it has identified slot values (or suppliedsuggested slot values) for each slot corresponding to an analytics task.To determine whether a slot value exists for each slot, the analyticssystem 102 maps slot values to slots. When doing so, the analyticssystem 102 identifies slot values from within natural-language inputs orother inputs. As explained above, in certain embodiments, the analyticssystem 102 assigns each term within a natural-language input a slot tagand then identifies the term corresponding to certain slot tags as aslot value.

As indicated by the sequence-flow diagram 500, the analytics system 102performs different actions depending on whether a slot value exists foreach slot corresponding to an analytics task. If the analytics system102 determines a slot value for each slot, then the analytics system 102executes the analytics task using an analytical dataset and slot valuesfor each slot corresponding to the analytics task. In other words, theanalytics system 102 performs the act 524 of executing the analyticstask.

By contrast, if the analytics system 102 does not determine a slot valuefor each slot, the analytics system 102 determines any missing slotvalue(s). In other words, the analytics system 102 performs the act 510of determining missing slot value(s). This disclosure describes the act510 above with reference to the act 216 of FIG. 2A. In general, whenperforming the act 510, the analytics system 102 determines whether anatural-language input includes one or more slot values for theanalytics task. In certain embodiments, the analytics system 102determines whether it has assigned each slot corresponding to anidentified analytics task to terms within one or more natural-languageinputs. When the analytics system 102 has not assigned a particular slotto a term within a natural-language input, the analytics system 102likewise determines that the natural-language input is missing a slotvalue for the analytics system.

As further shown in FIG. 5, after determining missing slot value(s), theanalytics system 102 performs the act 512 of identifying suggested slotvalue(s). This disclosure describes the act 512 above with reference tothe act 218 in FIG. 2A. As described above, the analytics system 102optionally identifies suggested slot value(s) based on frequency, recentperformance, similarity, ordered sequencing, or relatedness of analyticstasks.

As indicated by the sequence-flow diagram 500, the analytics system 102performs different actions depending on whether it identifies suggestedslot values. If the analytics system identifies suggested slot value(s)the analytics system 102 performs the act 518 of customizing a responseto recommend suggested slot value(s). By contrast, if the analyticssystem does not identify suggested slot value(s), the analytics system102 performs the act 514 of customizing a response requesting a slotvalue.

This disclosure describes the acts 514 and 518 above with reference tothe act 220 in FIG. 2A. As their descriptions imply, however, the act514 corresponds to the embodiments in which the analytics system 102customizes a response to recommend one or more suggested slot valuescorresponding to a missing slot value. Conversely, the act 518corresponds to the embodiments in which the analytics system 102customizes a response to request one or more slot values correspondingto missing slot value(s).

Regardless of the type of customized response, the analytics system 102receives a reply to the customized response. As further shown in FIG. 5,the analytics system 102 performs the act 520 of receiving additionalinput identifying the slot value and the act 522 of determining a slotvalue based on the additional input. When receiving the additionalinput, the analytics system 102 in effect receives an input based uponwhich the analytics system 102 determines one or more of the missingslot values. This disclosure describes the acts 520 and 522 above withreference to the acts 222 and 228 in FIG. 2A, respectively.

As further shown in FIG. 5, in some embodiments, if the analytics system102 identifies suggested slot value(s), the analytics system 102performs the optional act of inputting presumptive slot value(s). Asdescribed above with reference to FIG. 3A, the analytics system 102 usesone or more of the suggested slot values as presumptive slot values toexecuted the analytics task. In other words, in some embodiments, theanalytics system 102 inputs presumptive slot values for the user 118 toexecute an analytics task. Consistent with the disclosure above, theanalytic system 102 may further customize a response that eitherrequests a slot value or recommends a suggested slot value.

After determining a slot value based on an additional input or inputtingpresumptive slot value(s), the analytics system 102 performs the act 524of executing the analytics task. This disclosure describes the acts 524above with reference to the act 230 in FIG. 2A. Alternatively, oradditionally, in some embodiments, the analytics system 102 uses one ofthe task engines 422-430 to execute the analytics task.

Turning now to FIG. 6, this figure illustrates a flowchart of a seriesof acts 600 in a method of executing an analytics task based onnatural-language inputs in accordance with one or more embodiments.While FIG. 6 illustrates acts according to one embodiment, alternativeembodiments may omit, add to, reorder, and/or modify any of the actsshown in FIG. 6. The acts of FIG. 6 can be performed as part of amethod. Alternatively, a non-transitory computer readable storage mediumcan comprise instructions that, when executed by one or more processors,cause a computing device to perform the acts depicted in FIG. 6. Instill further embodiments, a system can perform the acts of FIG. 6.

As shown in FIG. 6, the acts 600 include an act 610 of receiving anatural-language input. In particular, in some embodiments, the act 610includes receiving, from a client device, a natural-language input thata user provides via an analytics interface. For example, in someembodiments, receiving the natural-language input comprises receivingaudio of a spoken request indicating the analytics task or receiving atextual request indicating the analytics task.

In some embodiments, the analytics interface comprises a chatbotinterface and an analytics visualization interface. Accordingly, incertain embodiments, receiving the natural-language input that the userprovides via the analytics interface comprises receiving thenatural-language input that the user provides via the chatbot interface.

As further shown in FIG. 6, the acts 600 include an act 620 ofdetermining that an intent of the natural-language input corresponds toan analytics task. In particular, in some embodiments, the act 620includes determining that an intent of the natural-language inputcorresponds to an analytics task for the analytics system to execute.For example, in certain embodiments, determining that the intent of thenatural-language input corresponds to the analytics task for theanalytics system to execute comprises applying natural languageprocessing to assign to the natural-language input an intent tagrepresenting the analytics task.

As further shown in FIG. 6, the acts 600 include an act 630 ofidentifying multiple slots for the analytics task. For example, in someembodiments, identifying multiple slots for the analytics task comprisesidentifying slot tags representing the multiple slots for the analyticstask.

As further shown in FIG. 6, the acts 600 include an act 640 of mapping afirst slot value from the natural-language input to a first slot. Inparticular, in some embodiments, the act 640 includes mapping a firstslot value from the natural-language input to a first slot from themultiple slots.

As further shown in FIG. 6, the acts 600 include an act 650 ofidentifying that the natural-language input does not include a slotvalue corresponding to a second slot. In particular, in someembodiments, the act 650 includes identifying that the natural-languageinput does not include a slot value corresponding to a second slot fromthe multiple slots.

As further shown in FIG. 6, the acts 600 include an act 660 ofcustomizing a response corresponding to the second slot. In particular,in some embodiments, the act 660 includes customizing a responsecorresponding to the second slot from the multiple slots.

For example, in some embodiments, customizing the response correspondingto the second slot comprises customizing the response to request thesecond slot value corresponding to the second slot. By contrast, in someembodiments, customizing the response corresponding to the second slotcomprises identifying a suggested slot value corresponding to the secondslot and customizing the response to recommend the suggested slot valuecorresponding to the second slot.

As noted above, in some embodiments, the analytics interface comprises achatbot interface and an analytics visualization interface. In certainembodiments, customizing the response corresponding to the second slotcomprises customizing the response for display within the chatbotinterface.

As further shown in FIG. 6, the acts 600 include an act 670 ofdetermining a second slot value corresponding to the second slot. Inparticular, in some embodiments, the act 670 includes, based on anadditional input received from the client device in reply to thecustomized response, determining a second slot value corresponding tothe second slot.

As further shown in FIG. 6, the acts 600 include an act 680 of executingthe analytics task. In particular, in some embodiments, the act 680includes, in response to determining slot values for each of themultiple slots, executing the analytics task using an analytical datasetand the slot values for each of the multiple slots.

In addition to the acts 610-680, in some embodiments, the acts 600further include receiving the additional input from the client device,the additional input comprising an additional natural-language input.Relatedly, in some embodiments, the acts 600 further include receivingthe additional input from the client device, the additional inputidentifying the second slot value corresponding to the second slot.Similarly, in certain embodiments, the acts 600 further includereceiving the additional input from the client device, the additionalinput comprising an additional natural-language input identifying thesecond slot value corresponding to the second slot.

As noted above, in some embodiments, the analytics interface comprises achatbot interface and an analytics visualization interface. In certainembodiments, the acts 600 further include receiving, from the clientdevice, the additional input that the user provides via the chatbotinterface. By contrast, in one or more embodiments, the acts 600 furtherinclude sending a representation of the analytical dataset to the clientdevice for display within the analytics visualization interface.

Additionally, in some embodiments, the acts 600 further include sendinga representation of the analytical dataset to the client device fordisplay within a graphical user interface. Moreover, in certainembodiments, the acts 600 further include identifying a suggestedanalytics task related to the analytics task and customizing an advisoryresponse including a recommendation referencing the suggested analyticstask. Relatedly, in some embodiments, identifying the suggestedanalytics task related to the analytics task comprises identifying thesuggested analytics task based on one or more users' previouslyrequested analytics tasks. By contrast, in certain embodiments, the acts600 further include, before receiving the natural-language input,identifying the analytics task and customizing an advisory responsereferencing the analytics task as a suggested analytics task for theanalytics system to perform.

As suggested above, in some embodiments, the analytics system 102receives inputs with incompatible slot values. Accordingly, in certainembodiments, the acts 600 further include receiving, from the clientdevice, the additional input including an incompatible slot value thatdoes not correspond to the second slot and customizing an additionalresponse that describes the second slot and requests an additional slotvalue that corresponds to the second slot. Relatedly, in one or moreembodiments, the acts 600 further include receiving a further inputidentifying the second slot value corresponding to the second slot.

Additionally, in certain embodiments, the acts 600 further includeidentifying a tutorial related to the analytics task and customizing arecommendation that references the tutorial. Finally, in one or moreembodiments, the acts 600 further include re-executing the analyticstask using an additional analytical dataset and customizing an updatenotification that references the additional analytical dataset.

In addition to the methods described above, in some embodiments, themethod 600 includes a step for generating a customized response based ona slot from multiple slots. For example, in some such embodiments, themethod 600 includes a step for generating a customized response based ona slot from multiple slots that the analytics system uses when executingthe analytics task. The acts 508-518 of FIG. 5 represent acts thatcorrespond to the step for generating a customized response.Accordingly, the description and embodiments set forth above for theacts 508-518 correspond to the step for generating a customizedresponse.

Embodiments of the present disclosure may comprise or utilize a specialpurpose or general-purpose computer including computer hardware, suchas, for example, one or more processors and system memory, as discussedin greater detail below. Embodiments within the scope of the presentdisclosure also include physical and other computer-readable media forcarrying or storing computer-executable instructions and/or datastructures. In particular, one or more of the processes described hereinmay be implemented at least in part as instructions embodied in anon-transitory computer-readable medium and executable by one or morecomputing devices (e.g., any of the media content access devicesdescribed herein). In general, a processor (e.g., a microprocessor)receives instructions, from a non-transitory computer-readable medium,(e.g., a memory, etc.), and executes those instructions, therebyperforming one or more processes, including one or more of the processesdescribed herein.

Computer-readable media can be any available media that can be accessedby a general purpose or special purpose computer system.Computer-readable media that store computer-executable instructions arenon-transitory computer-readable storage media (devices).Computer-readable media that carry computer-executable instructions aretransmission media. Thus, by way of example, and not limitation,embodiments of the disclosure can comprise at least two distinctlydifferent kinds of computer-readable media: non-transitorycomputer-readable storage media (devices) and transmission media.

Non-transitory computer-readable storage media (devices) includes RAM,ROM, EEPROM, CD-ROM, solid state drives (“SSDs”) (e.g., based on RAM),Flash memory, phase-change memory (“PCM”), other types of memory, otheroptical disk storage, magnetic disk storage or other magnetic storagedevices, or any other medium which can be used to store desired programcode means in the form of computer-executable instructions or datastructures and which can be accessed by a general purpose or specialpurpose computer.

A “network” is defined as one or more data links that enable thetransport of electronic data between computer systems and/or modulesand/or other electronic devices. When information is transferred, orprovided over a network or another communications connection (eitherhardwired, wireless, or a combination of hardwired or wireless) to acomputer, the computer properly views the connection as a transmissionmedium. Transmissions media can include a network and/or data linkswhich can be used to carry desired program code means in the form ofcomputer-executable instructions or data structures and which can beaccessed by a general purpose or special purpose computer. Combinationsof the above should also be included within the scope ofcomputer-readable media.

Further, upon reaching various computer system components, program codemeans in the form of computer-executable instructions or data structurescan be transferred automatically from transmission media tonon-transitory computer-readable storage media (devices) (or viceversa). For example, computer-executable instructions or data structuresreceived over a network or data link can be buffered in RAM within anetwork interface module (e.g., a “NIC”), and then eventuallytransferred to computer system RAM and/or to less volatile computerstorage media (devices) at a computer system. Thus, it should beunderstood that non-transitory computer-readable storage media (devices)can be included in computer system components that also (or evenprimarily) utilize transmission media.

Computer-executable instructions comprise, for example, instructions anddata which, when executed at a processor, cause a general-purposecomputer, special purpose computer, or special purpose processing deviceto perform a certain function or group of functions. In one or moreembodiments, computer-executable instructions are executed on ageneral-purpose computer to turn the general-purpose computer into aspecial purpose computer implementing elements of the disclosure. Thecomputer executable instructions may be, for example, binaries,intermediate format instructions such as assembly language, or evensource code. Although the subject matter has been described in languagespecific to structural marketing features and/or methodological acts, itis to be understood that the subject matter defined in the appendedclaims is not necessarily limited to the described marketing features oracts described above. Rather, the described marketing features and actsare disclosed as example forms of implementing the claims.

Those skilled in the art will appreciate that the disclosure may bepracticed in network computing environments with many types of computersystem configurations, including, personal computers, desktop computers,laptop computers, message processors, hand-held devices, multi-processorsystems, microprocessor-based or programmable consumer electronics,network PCs, minicomputers, mainframe computers, mobile telephones,PDAs, tablets, pagers, routers, switches, and the like. The disclosuremay also be practiced in distributed system environments where local andremote computer systems, which are linked (either by hardwired datalinks, wireless data links, or by a combination of hardwired andwireless data links) through a network, both perform tasks. In adistributed system environment, program modules may be located in bothlocal and remote memory storage devices.

Embodiments of the present disclosure can also be implemented in cloudcomputing environments. In this description, “cloud computing” isdefined as a subscription model for enabling on-demand network access toa shared pool of configurable computing resources. For example, cloudcomputing can be employed in the marketplace to offer ubiquitous andconvenient on-demand access to the shared pool of configurable computingresources. The shared pool of configurable computing resources can berapidly provisioned via virtualization and released with low managementeffort or service provider interaction, and then scaled accordingly.

A cloud-computing subscription model can be composed of variouscharacteristics such as, for example, on-demand self-service, broadnetwork access, resource pooling, rapid elasticity, measured service,and so forth. A cloud-computing subscription model can also exposevarious service subscription models, such as, for example, Software as aService (“SaaS”), a web service, Platform as a Service (“PaaS”), andInfrastructure as a Service (“IaaS”). A cloud-computing subscriptionmodel can also be deployed using different deployment subscriptionmodels such as private cloud, community cloud, public cloud, hybridcloud, and so forth. In this description and in the claims, a“cloud-computing environment” is an environment in which cloud computingis employed.

FIG. 7 illustrates a block diagram of exemplary computing device 700that may be configured to perform one or more of the processes describedabove. As shown by FIG. 7, the computing device 700 can comprise aprocessor 702, a memory 704, a storage device 706, an I/O interface 708,and a communication interface 710, which may be communicatively coupledby way of a communication infrastructure 712. In certain embodiments,the computing device 700 can include fewer or more components than thoseshown in FIG. 7. Components of the computing device 700 shown in FIG. 7will now be described in additional detail.

In one or more embodiments, the processor 702 includes hardware forexecuting instructions, such as those making up a computer program. Asan example, and not by way of limitation, to execute instructions fordigitizing real-world objects, the processor 702 may retrieve (or fetch)the instructions from an internal register, an internal cache, thememory 704, or the storage device 706 and decode and execute them. Thememory 704 may be a volatile or non-volatile memory used for storingdata, metadata, and programs for execution by the processor(s). Thestorage device 706 includes storage, such as a hard disk, flash diskdrive, or other digital storage device, for storing data or instructionsrelated to object digitizing processes (e.g., digital scans, digitalmodels).

The I/O interface 708 allows a user to provide input to, receive outputfrom, and otherwise transfer data to and receive data from computingdevice 700. The I/O interface 708 may include a mouse, a keypad or akeyboard, a touch screen, a camera, an optical scanner, networkinterface, modem, other known I/O devices or a combination of such I/Ointerfaces. The I/O interface 708 may include one or more devices forpresenting output to a user, including, but not limited to, a graphicsengine, a display (e.g., a display screen), one or more output drivers(e.g., display drivers), one or more audio speakers, and one or moreaudio drivers. In certain embodiments, the I/O interface 708 isconfigured to provide graphical data to a display for presentation to auser. The graphical data may be representative of one or more graphicaluser interfaces and/or any other graphical content as may serve aparticular implementation.

The communication interface 710 can include hardware, software, or both.In any event, the communication interface 710 can provide one or moreinterfaces for communication (such as, for example, packet-basedcommunication) between the computing device 700 and one or more othercomputing devices or networks. As an example and not by way oflimitation, the communication interface 710 may include a networkinterface controller (“NIC”) or network adapter for communicating withan Ethernet or other wire-based network or a wireless NIC (“WNIC”) orwireless adapter for communicating with a wireless network, such as aWI-FI.

Additionally, the communication interface 710 may facilitatecommunications with various types of wired or wireless networks. Thecommunication interface 710 may also facilitate communications usingvarious communication protocols. The communication infrastructure 712may also include hardware, software, or both that couples components ofthe computing device 700 to each other. For example, the communicationinterface 710 may use one or more networks and/or protocols to enable aplurality of computing devices connected by a particular infrastructureto communicate with each other to perform one or more aspects of thedigitizing processes described herein. To illustrate, the imagecompression process can allow a plurality of devices (e.g., serverdevices for performing image processing tasks of a large number ofimages) to exchange information using various communication networks andprotocols for exchanging information about a selected workflow and imagedata for a plurality of images.

In the foregoing specification, the present disclosure has beendescribed with reference to specific exemplary embodiments thereof.Various embodiments and aspects of the present disclosure(s) aredescribed with reference to details discussed herein, and theaccompanying drawings illustrate the various embodiments. Thedescription above and drawings are illustrative of the disclosure andare not to be construed as limiting the disclosure. Numerous specificdetails are described to provide a thorough understanding of variousembodiments of the present disclosure.

The present disclosure may be embodied in other specific forms withoutdeparting from its spirit or essential characteristics. The describedembodiments are to be considered in all respects only as illustrativeand not restrictive. For example, the methods described herein may beperformed with less or more steps/acts or the steps/acts may beperformed in differing orders. Additionally, the steps/acts describedherein may be repeated or performed in parallel with one another or inparallel with different instances of the same or similar steps/acts. Thescope of the present application is, therefore, indicated by theappended claims rather than by the foregoing description. All changesthat come within the meaning and range of equivalency of the claims areto be embraced within their scope.

We claim:
 1. In a digital medium environment for interfacing with ananalytics system, a computer-implemented method of executing analyticstasks based on natural-language inputs comprising: receiving, from aclient device, a natural-language input that a user provides via ananalytics interface; determining that an intent of the natural-languageinput corresponds to an analytics task for the analytics system toexecute; performing a step for generating a customized response based ona slot from multiple slots that the analytics system uses when executingthe analytics task; based on an additional input received from theclient device in reply to the customized response, determining a slotvalue corresponding to the slot; and in response to determining slotvalues for each of the multiple slots, executing the analytics taskusing an analytical dataset and the slot values for each of the multipleslots.
 2. The method of claim 1, wherein receiving the natural-languageinput comprises receiving audio of a spoken request indicating theanalytics task or receiving a textual request indicating the analyticstask.
 3. The method of claim 1, further comprising receiving theadditional input from the client device, the additional input comprisingan additional natural-language input.
 4. The method of claim 1, furthercomprising receiving the additional input from the client device, theadditional input identifying the slot value corresponding to the slot.5. The method of claim 1, wherein determining that the intent of thenatural-language input corresponds to the analytics task for theanalytics system to execute comprises applying natural languageprocessing to assign to the natural-language input an intent tagrepresenting the analytics task.
 6. A non-transitory computer readablestorage medium comprising instructions that, when executed by at leastone processor, cause a computing system to: receive, from a clientdevice, a natural-language input that a user provides via an analyticsinterface; determine that an intent of the natural-language inputcorresponds to an analytics task for the analytics system to execute;customize a response based on a slot from multiple slots that ananalytics system uses when executing the analytics task; based on anadditional input received from the client device in reply to thecustomized response, determine a slot value corresponding to the slot;and in response to determining slot values for each of the multipleslots, execute the analytics task using an analytical dataset and theslot values for each of the multiple slots.
 7. The non-transitorycomputer readable storage medium of claim 6, wherein the instructionsthat cause the computing system to customize the response based on theslot from multiple slots comprises instructions that, when executed bythe at least one processor, cause the computing system to: identify thatthe natural-language input does not include the slot value correspondingto the slot; and customize the response to request the slot valuecorresponding to the slot.
 8. The non-transitory computer readablestorage medium of claim 7, further comprising instructions that, whenexecuted by the at least one processor, cause the computing system toreceive the additional input from the client device, the additionalinput comprising an additional natural-language input identifying theslot value corresponding to the slot.
 9. The non-transitory computerreadable storage medium of claim 6, wherein the instructions that causethe computing system to customize the response identifying the slot fromthe multiple slots comprises instructions that, when executed by the atleast one processor, cause the computing system to: identify that thenatural-language input does not include the slot value corresponding tothe slot; and identify a suggested slot value corresponding to the slot;and customize the response to recommend the suggested slot valuecorresponding to the slot.
 10. The non-transitory computer readablestorage medium of claim 6, further comprising instructions that, whenexecuted by the at least one processor, cause the computing system toidentify slot tags representing slots for the analytics task.
 11. Thenon-transitory computer readable storage medium of claim 6, furthercomprising instructions that, when executed by the at least oneprocessor, cause the computing system to send a representation of theanalytical dataset to the client device for display within a graphicaluser interface.
 12. The non-transitory computer readable storage mediumof claim 6, further comprising instructions that, when executed by theat least one processor, cause the computing system to: identify asuggested analytics task related to the analytics task; and customize anadvisory response including a recommendation referencing the suggestedanalytics task.
 13. The non-transitory computer readable storage mediumof claim 12, wherein the instructions that cause the computing system toidentify the suggested analytics task related to the analytics taskcomprise instructions that, when executed by the at least one processor,cause the computing system to identify the suggested analytics taskbased on one or more users' previously requested analytics tasks.
 14. Asystem for executing analytics tasks based on natural-language inputscomprising: a non-transitory computer memory comprising analyticaldatasets; and at least one computing device storing instructions thereonthat, when executed by the at least one computing device, cause thesystem to: receive, from a client device, a natural-language input thata user provides via an analytics interface; determine that an intent ofthe natural-language input corresponds to an analytics task for theanalytics system to execute; identify multiple slots for the analyticstask; map a first slot value from the natural-language input to a firstslot from the multiple slots; identify that the natural-language inputdoes not include a slot value corresponding to a second slot from themultiple slots; customize a response corresponding to the second slotfrom the multiple slots; based on an additional input received from theclient device in reply to the customized response, determine a secondslot value corresponding to the second slot; and in response todetermining slot values for each of the multiple slots, execute theanalytics task using an analytical dataset and the slot values for eachof the multiple slots.
 15. The system of claim 14, wherein: theanalytics interface comprises a chatbot interface and an analyticsvisualization interface; the instructions that cause the system toreceive the natural-language input comprise instructions that, whenexecuted by the at least one computing device, cause the system toreceive the natural-language input that the user provides via thechatbot interface; the instructions that cause the system to customizethe response corresponding to the second slot from the multiple slotscomprise instructions that, when executed by the at least one computingdevice, cause the system to customize the response for display withinthe chatbot interface; and the system further comprising instructionsthat, when executed by the at least one computing device, cause thesystem to receive, from the client device, the additional input that theuser provides via the chatbot interface.
 16. The system of claim 15,further comprising instructions that, when executed by the at least onecomputing device, cause the system to send a representation of theanalytical dataset to the client device for display within the analyticsvisualization interface.
 17. The system of claim 14, further comprisinginstructions that, when executed by the at least one computing device,cause the system to: receive, from the client device, the additionalinput including an incompatible slot value that does not correspond tothe second slot; and customize an additional response that describes thesecond slot and requests an additional slot value that corresponds tothe second slot.
 18. The system of claim 17, further comprisinginstructions that, when executed by the at least one computing device,cause the system to receive a further input identifying the second slotvalue corresponding to the second slot.
 19. The system of claim 14,further comprising instructions that, when executed by the at least onecomputing device, cause the system to: before receiving thenatural-language input, identify the analytics task; and customize anadvisory response referencing the analytics task as a suggestedanalytics task for the analytics system to perform.
 20. The system ofclaim 14, further comprising instructions that, when executed by the atleast one computing device, cause the system to: identify a tutorialrelated to the analytics task; and customize a recommendation thatreferences the tutorial.